// pages/giftRecord/giftRecord.js
import giftApi from '../../service/giftApi'
const app = getApp()
const SUCCESS_CODE = app.globalData.codeConfig.errCode.SUCCESS_CODE
Page({

  /**
   * 页面的初始数据
   */
  data: {
    giftTabs: [
      {
        key: '1',
        title: '我送出的',
      },
      {
        key: '2',
        title: '我收到的',
      }
    ],
    current: '1',
    sendGiftList: [], // 我送出的礼物
    giveMeGiftList: [], // 我收到的礼物
    startPage: 1,    
    upAbled: true, // 是否可以上拉加载
    loadTips: '上拉加载',
    defaultShow: false,
    loading: false,
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.getGiftRecord()
  },

  // 切换tab
  onChangeTab(e) {
    this.setData({
      current: e.detail.key,
      startPage: 1,
      upAbled: true,
      loadTips: '上拉加载',
      sendGiftList: [], // 我送出的礼物
      giveMeGiftList: [], // 我收到的礼物
  })
    this.getGiftRecord(e.detail.key)
  },

  // 获取礼物记录
  getGiftRecord(recordType = '1') {
    let params = {
      pageSize: 15,
      startPage: this.data.startPage,
      recordType
    }
    if (params.startPage === 1) {
      this.setData({
        sendGiftList: [], // 我送出的礼物
        giveMeGiftList: [], // 我收到的礼物
        loadTips: '上拉加载',
        loading: true,
        defaultShow: false
      })
    }
    giftApi.getGiftRecord(params).then(({ data }) => {
      console.log(data, '礼物记录');
      wx.stopPullDownRefresh()
      if (data.errCode === SUCCESS_CODE) {
        if (params.startPage === 1) {
          this.setData({
            sendGiftList: [], // 我送出的礼物
            giveMeGiftList: [], // 我收到的礼物
            loadTips: '上拉加载',
            loading: true,
            defaultShow: false
          })
        }
        data.data.map(item => {
          if (!item.userInfo.headUrl && item.userInfo.nickName) {
            let nickName = item.userInfo.nickName
            item.userInfo.nickName = nickName.substr(0, 8) + '.....' + nickName.substr(-8, 8)
          }
        })
        if (recordType === '1') {
          let _giftList = this.data.sendGiftList.concat(data.data)
          this.setData({
            loading: false,
            sendGiftList: _giftList
          })
          if (this.data.sendGiftList.length === 0) {
            this.setData({
              defaultShow: true,
              upAbled: false
            })
          } else {
            this.setData({
              defaultShow: false
            })
          }
          if (data.data.length < params.pageSize) {
            this.setData({
              loadTips: '暂无更多数据',
              upAbled: false
            })
          } else {
            this.setData({
              loadTips: '上拉加载'
            })
          }
        } else if (recordType === '2') {
          let _giftList = this.data.giveMeGiftList.concat(data.data)
          this.setData({
            loading: false,
            giveMeGiftList: _giftList
          })
          if (this.data.giveMeGiftList.length === 0) {
            this.setData({
              defaultShow: true,
              upAbled: false
            })
          } else {
            this.setData({
              defaultShow: false
            })
          }
          if (data.data.length < params.pageSize) {
            this.setData({
              loadTips: '暂无更多数据',
              upAbled: false
            })
          } else {
            this.setData({
              loadTips: '上拉加载'
            })
          }
        }
      } else {
        wx.showToast({
          title: data.msg,
          icon: 'none'
        })
      }
    }).catch(res => {
      wx.stopPullDownRefresh(); // 阻止下拉刷新
      console.log(res);
    })
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
    this.setData({
      startPage: '1',
      upAbled: true, // 是否可上拉加载
    })
    let e = {
      detail: {
        key: this.data.current
      }
    }
    this.onChangeTab(e)
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    if (this.data.upAbled) {
      this.setData({
        startPage: this.data.startPage + 1,
        loadTips: '加载中...'
      })
      this.getGiftRecord(this.data.current)
    }
  }
})